package com.docmanage.am.mapper;

import com.docmanage.am.domain.AmBorrow;
import com.docmanage.am.domain.dto.AmBorrowSearchDTO;
import com.docmanage.am.domain.dto.AmBorrowStatisticsDTO;
import com.docmanage.am.domain.dto.StatisticsBorrowDTO;
import com.docmanage.am.domain.vo.AmBorrowSearchVo;
import com.docmanage.am.domain.vo.AmBorrowStatisticsVO;
import com.docmanage.am.domain.vo.StatisticsBorrowVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 档案借阅Mapper接口
 * 
 * @author pointLion
 * @date 2023-06-18
 */
public interface AmBorrowMapper 
{
    /**
     * 查询档案借阅
     * 
     * @param id 档案借阅主键
     * @return 档案借阅
     */
    public AmBorrow selectAmBorrowById(Long id);

    /**
     * 查询档案借阅列表
     * 
     * @param searchDTO 档案借阅
     * @return 档案借阅集合
     */
    List<AmBorrowSearchVo> selectAmBorrowList(AmBorrowSearchDTO searchDTO);

    /**
     * 新增档案借阅
     * 
     * @param amBorrow 档案借阅
     * @return 结果
     */
    public int insertAmBorrow(AmBorrow amBorrow);

    /**
     * 修改档案借阅
     * 
     * @param amBorrow 档案借阅
     * @return 结果
     */
    public int updateAmBorrow(AmBorrow amBorrow);

    /**
     * 删除档案借阅
     * 
     * @param id 档案借阅主键
     * @return 结果
     */
    public int deleteAmBorrowById(Long id);

    /**
     * 批量删除档案借阅
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAmBorrowByIds(Long[] ids);

    List<StatisticsBorrowVo> statisticsBorrow(StatisticsBorrowDTO dto);

    /**
     * 判断某个档案是否在库
     * @param descId 档案id
     * @return
     */
    Boolean selectAmBorrowListByDeptId(@Param("descId") Long descId);

    /**
     * @param dto
     * @return
     * 更具具体条件插叙统计数据
     */
    List<AmBorrowStatisticsVO> borrowStatistics(AmBorrowStatisticsDTO dto);
}
